package com.project.controller;

import com.project.bean.CutPageBean;
import com.project.bean.RoomBean;
import com.project.service.IRoomService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
@RequestMapping("room")
public class RoomController {
    @Autowired
    private IRoomService service;

    /**
     * 按页吗，房间地址，房间状态，房间可住不可住，房间类型进行分页动态模糊查询
     * 同时统计每个房间的已住人数。
     * @param pageNo 页码
     * @param roomName 房间地址
     * @param roomState 房间状态
     * @param into 房间可住不可住
     * @param roomSex 房间类型
     * @return 分页房间集合
     */
    @RequestMapping("findByItem")
    public CutPageBean<RoomBean> findByItem(Integer pageNo, String roomName, String roomState, String into, String roomSex){
        return service.findByItem(pageNo,roomName,roomState,into,roomSex);
    }

    /**
     * 按id查询房间 同时查询该房间学生信息，统计已住人数
     * 在学生信息中，需要查询学生所在班级名称。
     * @param id 房间id
     * @return 房间对象
     */
    @RequestMapping("findById")
    public RoomBean findById(Integer id){
        return service.findById(id);
    }

    /**
     * 按id删除房间，同时统计房间已住人数，为0删除成功，同时删除房间的设施维护信息，返回true，
     * 否则失败，返回false。
     * @param id 房间id
     * @return 删除成功与否。
     */
    @RequestMapping("del")
    public String del(Integer id){
        if (service.del(id)){
            return "ok";
        }
        else {
            return "no";
        }

    }

    /**
     * 添加
     */
    @RequestMapping("add")
    public String add(String roomName, String roomSex, Integer roomMaxNumber){
        RoomBean room = new RoomBean(roomName,roomSex,roomMaxNumber);
        service.add(room);
        return "ok";
    }

    /**
     * 根据类型查询房间集合
     * @param sex 类型
     * @return 房间集合
     */
    @RequestMapping("findBySex")
    public List<RoomBean> findBySex(String sex){
        return service.findBySex(sex);
    }
}
